#pragma once
#include <functional>
#include "packet.h"

namespace KRPC{

using SubcribeCallback = std::function<void(std::string)>;

struct Server
{
	virtual ~Server() {}
	virtual void run(std::function<void(Packet &)>, SubcribeCallback) = 0;
	virtual void publish(Packet &&) = 0;
};

}
